/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.graficaluna.ui.otros;

import dto.OrdenTrabajoDTO;
import java.io.File;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import com.graficaluna.service.pedido.ServicioOrdenTrabajo;

/**
 *
 * @author rsaldana
 */

@ManagedBean(name="priorizarOrdenes")
@ViewScoped //dura por todo el tiempo que estes en esa vista.
public class PriorizarOrdenesBean implements Serializable{
    
    private List<OrdenTrabajoDTO> listaOrdenes = new ArrayList<OrdenTrabajoDTO>();
    private List<String> listaPrioridades = new ArrayList<String>(); 
    
     @PostConstruct
    public void listar() {
         ServicioOrdenTrabajo servicio = new ServicioOrdenTrabajo();
         setListaOrdenes(servicio.listarOrdenesTrabajo());
         getListaPrioridades().add("ALTA");
         getListaPrioridades().add("MEDIA");
         getListaPrioridades().add("BAJA");
    }
    
    public String iniciar() {
        return "/views/priorizar_ordenes_trabajo/priorizarOrdenes.xhtml?faces-redirect=true";
    }
    
    public void procesar(){
       ServicioOrdenTrabajo servicio = new ServicioOrdenTrabajo();
       servicio.priorizarOrdenes();
       FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Se proces&#243; correctamente", ""));
       setListaOrdenes(servicio.listarOrdenesTrabajo());
    }
    
    public void grabar(){
        ServicioOrdenTrabajo servicio = new ServicioOrdenTrabajo();
        servicio.actualizarOrdenMaquinas(listaOrdenes);
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Se grab&#243; correctamente", ""));
    }            
    
    public void imprimir(){
        try {
           ExternalContext externalContext  = FacesContext.getCurrentInstance().getExternalContext();
           ServletContext servletContext = (ServletContext)externalContext.getContext();
           File archivo = new File(servletContext.getRealPath("/reportes/priorizacion_ordenes.jasper"));			
           ServicioOrdenTrabajo servicio = new ServicioOrdenTrabajo();
           byte[] bytes = servicio.verReporte(archivo); 
           HttpServletResponse response = (HttpServletResponse)externalContext.getResponse();
           response.setContentType("application/pdf");
           response.setContentLength(bytes.length);           
           response.setHeader("Content-Disposition", "atachment; filename=\"prioridad_ordenes.pdf\"");
           ServletOutputStream ouputStream = response.getOutputStream();
           ouputStream.write(bytes, 0, bytes.length);		
        } catch (Exception e) {
            e.printStackTrace();
        }         
    }
    
    
            
    
    
    //<editor-fold defaultstate="collapsed" desc="setters and getters">
    /**
     * @return the listaOrdenes
     */
    public List<OrdenTrabajoDTO> getListaOrdenes() {
        return listaOrdenes;
    }

    /**
     * @param listaOrdenes the listaOrdenes to set
     */
    public void setListaOrdenes(List<OrdenTrabajoDTO> listaOrdenes) {
        this.listaOrdenes = listaOrdenes;
    }
    
    /**
     * @return the listaPrioridades
     */
    public List<String> getListaPrioridades() {
        return listaPrioridades;
    }

    /**
     * @param listaPrioridades the listaPrioridades to set
     */
    public void setListaPrioridades(List<String> listaPrioridades) {
        this.listaPrioridades = listaPrioridades;
    }
    
    
     //</editor-fold>

    

    


}
